package cn.miju.admin.biz.vo;

import cn.miju.dict.constant.DictConstant;
import cn.miju.dict.translate.DictTranslate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <pre>
 * 支付订单分页查询
 * </pre>
 *
 * @author zhuming
 * @version 1.0.0
 * @since 2023-04-07 11:41
 */
@Data
@ApiModel
public class PayOrderPageOutVO {
    /**
     * 订单ID
     */
    @ApiModelProperty("订单ID")
    private Long id;
    /**
     * 订单号
     */
    @ApiModelProperty("订单号[平台订单号]")
    private String orderNo;
    /**
     * 商户订单号
     */
    @ApiModelProperty("商户订单号")
    private String outOrderNo;
    /**
     * 所属商户
     */
    @ApiModelProperty("所属商户")
    private String merchantName;
    /**
     * 支付场景
     */
    @ApiModelProperty("支付场景")
    @DictTranslate(name = DictConstant.PAY_SCEN)
    private String payScen;
    /**
     * 支付方式
     */
    @ApiModelProperty("支付方式")
    private String payWay;
    /**
     * 金额
     */
    @ApiModelProperty("金额")
    private Integer amount;
    /**
     * 状态
     */
    @ApiModelProperty("状态")
    private String status;
    /**
     * 下单时间
     */
    @ApiModelProperty("下单时间")
    private LocalDateTime createdOrderTime;
    /**
     * 支付时间
     */
    @ApiModelProperty("支付时间")
    private String payOrderTime;
    /**
     * 退款记录列表
     */
    @ApiModelProperty("退款记录列表")
    private List<RefundRecord> refundRecords;

    /**
     * 退款记录
     */
    @Data
    public static class RefundRecord {
        /**
         * 平台退款单号
         */
        @ApiModelProperty("平台退款单号")
        private String refundNo;
        /**
         * 商户退款单号
         */
        @ApiModelProperty("商户退款单号")
        private String outRefundNo;
        /**
         * 退款金额
         */
        @ApiModelProperty("退款金额")
        private Integer amount;
        /**
         *  退款状态
         */
        @ApiModelProperty("退款状态")
        private String refundStatus;
        /**
         * 申请退款时间
         */
        @ApiModelProperty("申请退款时间")
        private String refundCreatedTime;
        /**
         * 完成退款时间
         */
        @ApiModelProperty("完成退款时间")
        private String refundFinishTime;
    }

}
